package it.polimi.jita.cp.block.pc;

import java.util.List;

import it.polimi.jita.cp.block.Input;

public class PenaltyCalculatorInput extends Input {
	private List<Double> capacityDemand;
	private Double systemCapacity;
	private final Integer vcpuNum;
	private final Double x0; // passaggio da lin a exp/asy
	private final Double x1; // penalty doppia
	private final Double x2; // asintoto
	private final boolean isWithAsymptoticPenalty;
	private boolean isAsymptoticExceptionCatched = false;

	public PenaltyCalculatorInput(List<Double> capacityDemand,
			Double systemCapacity, Integer vmsNum, Double x0, Double x1,
			Double x2) {
		this.capacityDemand = capacityDemand;
		this.systemCapacity = systemCapacity;
		this.vcpuNum = vmsNum;
		this.x0 = x0;
		this.x1 = x1;
		this.x2 = x2;
		isWithAsymptoticPenalty = (x2 != null);

	}

	protected Double getSystemCapacity() {
		return systemCapacity;
	}

	protected void setSystemCapacity(Double systemCapacity) {
		this.systemCapacity = systemCapacity;
	}

	protected Integer getVcpuNum() {
		return vcpuNum;
	}

	protected Double getX0() {
		return x0;
	}

	protected Double getX1() {
		return x1;
	}

	protected Double getX2() {
		return x2;
	}

	protected List<Double> getCapacityDemand() {
		return capacityDemand;
	}

	protected void setCapacityDemand(List<Double> capacityDemand) {
		this.capacityDemand = capacityDemand;
	}

	protected boolean isWithAsymptoticPenalty() {
		return isWithAsymptoticPenalty;
	}

	public void setCatchAsymptoticException(boolean isAsymptoticExceptionCatched) {
		this.isAsymptoticExceptionCatched = isAsymptoticExceptionCatched;
	}

	public boolean isAsymptoticExceptionCatched() {
		return isAsymptoticExceptionCatched;
	}

}
